Le dialogue entre l’automate M340 et le modem Flexy 205 se fait en Modbus - TCP.
On utilise aussi une séquence permettant de valider les différentes options.
Demande | Spécification |
---|---|
1 | numéro d’envoi du SMS est paramétrable par l’automate |
2 | demande d’envoi du SMS par l’automate |
3 | modem inactive, surveillance d’un mot de vie appartenant à un automate |
4 | coupure de tension du modem, envoi d’un SMS |
5 | modem peut recevoir un message et le signaler à l’automate |
5.1 Numéro d’envoi du SMS
Demande | Spécification |
---|---|
1 | numéro d’envoi du SMS est paramétrable par l’automate |
5.1.1 Configuration de l’eWON

Figure 10 : Configuration de eWON
Déclarer de deux tags nommés API_ENVOI_Num_tel et API_ENVOI_Indic_Pays contenant le n° de téléphone complet pour la réception du SMS.
Exemple :
API_ENVOI_Num_tel = 6 66 92 55 97 soit le n° sans le 0 réservé pour les communication interne en France.
API_ENVOI_Indic_pays = 33 est l’indicatif pour les communications en France le "+" devant 33 est ajouté automatiquement par l’eWON.

Figure 11 : Conf Tag API_ENVOI_Num_tel

Figure 12 : Visibilité du Tag
Le tag API_ENVOI_Num_tel possède l’adresse Modbus registre 202.⚠ Attention : ne pas oublier de cocher ☑ Utiliser le format 32-bit pour la communication Modbus.
Le tag API_ENVOI_Indic_pays possède l’adresse Modbus registre 201.
Les tags eWON sont par défaut en interne au format 32 bits mais transmis en 16 bits par le Modbus.
5.1.2 Configuration du M340 version 2

Figure 13 : M340 LD EWON_FLEXY_1
Un DFB a été réalisé pour les échanges entre l’eWON et l’automate :

Figure 14 : DFB d’échange eWON / PLC
Deux variables correspondant aux 2 tags de l’eWON sont créées et mises en entrée du DFB.L’envoi de ces variables vers l’eWON se fait avec la partie envoi du SMS.
5.2 Demande envoi SMS par l’automate
Demande d’envoi du SMS par l’automate :
Exigence | Spécification |
---|---|
2 | Table d’envoi de 160 caractères contenant un message SMS.Cette table est communicante avec un automate. Un mot de gestion permet la demande d’envoi du SMS par l’automate et le retour par le modem de l’opération. |
5.2.1 Configuration de l’eWON
Déclaration de 160 tags nommés API_ENVOI_MSG1 à API_ENVOI_MSG160 pour la gestion du message SMS.

Figure 15 : tag API_ENVOI_MSG1 à 160
Le tag API_ENVOI_MSG1 possède l’adresse Modbus registre 1.
Le tag API_ENVOI_MSG160 possède l’adresse Modbus registre 160.
Déclaration du tag API_ENVOI_DmdeEnvoi pour la demande automate d’envoi du message SMS : registre Modbus 204.
Déclaration du tag API_ENVOI_StatusEnvoi pour l’acquittement par l’eWON de la demande automate d’envoi du message SMS : registre Modbus 205.

Figure 16 : Tag API_ENVOI_DmdeEnvoi
5.2.2 Configuration du M340

Figure 17 : Configuration M340
Un DFB a été réalisé pour les échanges entre l’eWON et l’automate.

Figure 18 : DMDE_ENVOI messagesms ok_envoi
- 1 variable DMDE_ENVOI correspondant au 1 tag API_ENVOI_DmdeEnvoi ;
- 1 variable messagesms contentant le message du SMS au format chaîne ;
- 1 bit ok_envoi indiquant la réussite de l’opération.
5.2.3 Basic EnvoiMessageApi eWON M340
Par défaut, un programme eWON BASIC IDE existe : Cyclic Section et Init Section.

Figure 19 : eWON IDE Cyclic et Init en BASIC
Dans la section Init, lancer la surveillance de la variable API_ENVOI_DmdeEnvoi avec la fonction ONCHANGE. Lorsque que la variable passe à 1, le programme saute vers le label EnvoiMessageApi.
On attend également le retour d’envoi du SMS par la fonction ONSTATUS :
Mot clé | Définition |
---|---|
ONCHANGE | Executed when a tag changes. Valid for a change of value or configuration |
ONSTATUS | The EVTINFO parameter is set to the ACTIONID of the finished action when command is called.This function can be used to track success or failure of scheduled actions |
CreationMessageApi et EnvoiMessageApi en langage BASIC :
CreationMessageApi: MessageAEnvoyer$="" FOR a%= 1 TO 160 STEP 1 MessageAEnvoyer$=MessageAEnvoyer$+CHR$(GETIO("API_ENVOI_MSG"+STR$(a%))) NEXT a% Print "Message a envoyer par Api : " + MessageAEnvoyer$ RETURN
EnvoiMessageApi:
GoSub CreationMessageApi
//pour indiquer la prise en compte de la demande
Destinataire$ = "+" + STR$(INT(API_ENVOI_Indic_pays@)) + STR$(INT(API_ENV_Num_tel@)) + ",gsm,0"
SENDSMS Destinataire$, MessageAenvoyer$
EnvoiSMSApi = GETSYS PRG,"ACTIONID"
Print "SMS envoyé par Api"
END
Mot clé | Définition |
---|---|
GOSUB S1S1:...RETURN | When the GOSUB line is executed, the program continues but jumping to Label line.The program executes the code until the RETURN line is met. The RETURN command modifies theprogram pointer to the line immediately following the GOSUB Line. |
GETSYS PRG, "ACTIONID" | When the function returns, the GETSYS PRG, "ACTIONID" returns the ID of the scheduled action and allows tracking this action. It is also possible to program an ONSTATUS action that will be called when the action is finished (with or without success) |
CreationMessageApi concatène le message reçu par les tags MSG1 à MSG160 dans la chaîne MessageAEnvoyer$.
Le tag API_ENVOI_StatusEnvoi est mis à 1 pour indiquer à l’automate la prise en compte de la demande d’envoi du message.
Le numéro de téléphone est formaté avec "+", l’indicatif pays et le n° de téléphone pour la compatibilité avec la fonction SENDSMS.
Le SMS est envoyé avec la fonction SENDSMS.
La surveillance du résultat de l’envoi du SMS est lancée par la fonction GETSYS PRG, "ACTIONID en lien avec la fonction ONSTATUS de la section Init :
Status: k%=GETSYS PRG,"EVTINFO" // retour envoi SMS pour api If k%=EnvoiSMSApi Then REM l'action correspond au SENDSMS SETSYS PRG, "ACTIONID",k% l%=GETSYS PRG,"ACTIONSTAT" If k%=0 Then // L' envoi du SMS est termine avec succes Print "Envoi SMS api : Ok" API_ENVOI_StatusEnvoi@=2 Else Print "Envoi SMS api : NOk. Echec de l'envoi du SMS. Erreur " + Str$(l%) API_ENVOI_StatusEnvoi@=3 Endif Endif // retour envoi SMS pour lina If k%=EnvoiSMSLina Then REM l'action correspond au SENDSMS SETSYS PRG, "ACTIONID",k% l%=GETSYS PRG,"ACTIONSTAT" If l%=0 Then // L' envoi du SMS est termine avec succes Print "Envoi SMS Lina : Ok" LINA_ENVOI_StatusEnvoi@=2 Else Print "Envoi SMS Lina : NOk. Echec de l'envoi du SMS. Erreur " + Str$(l%) LINA_ENVOI_StatusEnvoi@=3 Endif Endif
Selon le résultat de l’envoi du SMS, la variable API_ENVOI_StatusEnvoi est mise à 2 ou à 3. Cette variable est récupérée par l’automate pour connaître l’issue de l’envoi du SMS.
5.2.4 Programme M340
La séquence M340 présentée est la séquence interne au DFB.
Cette séquence permet d’envoyer un SMS sur mise à 1 du mot DEMANDE_ENVOI.
Remarque : les registres Modbus de l’eWON se lisent et s’écrivent avec un décalage de 1 soit par exemple API_ENVOI_StatusEnvoi = registre 205 se lit en 204.

Figure 20 : Prog M340 attente DEMANDE_ENVOI
Attente ⌛ DEMANDE_ENVOI = 1, initialisation des résultats de l’envoi du SMS : ERREUR_ENVOI et OK_ENVOI.

Figure 21 : Écriture du n° tél.
Dans un 1er temps écriture sur l’eWON du n° de téléphone qui reçoit du SMS.

Figure 22 : Écriture du message de SMS
Dans un 2e temps écriture sur l’eWON du message de SMS, tags API_ENVOI_MSG1 à API_ENVOI_MSG160. Le message doit être envoyé en 2 parties car une trame Modbus ne peut pas dépasser 256 octets soit 128 mots.

Figure 23 : Écrire demande d’envoi du SMS
Dans un 3e temps écriture sur l’eWON de la demande d’envoi du SMS, tag API_ENVOI_DmdeEnvoi.

Figure 24 : Lire réponse API_ENVOI_StatusEnvoi
Dans un 4e temps, lecture de la réponse de l’eWON, tag API_ENVOI_StatusEnvoi.
Normalement l’eWON acquitte la demande par STATUS_ENVOI = 1, mais attente également du STATUS_ENVOI = 2 (SMS envoyé OK) et STATUS_ENVOI = 3 (SMS échec envoi). Tant qu’une de ces 3 réponses n’est pas obtenue, relecture du mot de STATUS

Figure 25 : Relecture du mot de STATUS
Dans un 5e temps lecture de la réponse de l’eWON, tag API_ENVOI_StatusEnvoi.
Attente du STATUS_ENVOI = 2 (SMS envoyé OK) et STATUS_ENVOI = 3 (SMS échec envoi). Tant qu’une de ces 2 réponses n’est pas obtenue, relecture du mot de STATUS.

Figure 26 : Écriture de la fin d’envoi du SMS
Dans un 6e temps écriture sur l’eWON de la fin d’envoi du SMS, tag. API_ENVOI_DmdeEnvoi.
Ce mot doit être récrit autre chose que 1 pour que la fonction ONCHANGE de l’eWON fonctionne à nouveau.

Figure 27 : msg à envoyer dans MESSAGE_ENVOI
La variable MESSAGE_ENVOI est la chaine de 160 caractères contenant le message à envoyer.
Cette chaîne est ensuite transformée pour que chaque entier du tableau MESSAGE_3 contienne un seul caractère ascii compatible avec l’eWON.
Remarque : dans un automate un caractère ascii est codé sur un octet donc un mot de 16 bit contient par défaut 2 caractères ascii.
5.3 Surveillance d’un mot de vie automate
Exigence | Spécification |
---|---|
3 | Sur entrée modem inactive, surveillance d’un mot de vie appartenant à un automate.Si le mot de vie n’évolue plus, envoi d’un SMS pour le signaler |
5.3.1 Configuration de l’eWON
Déclaration du tag BitDevie correspondant à l’entrée DI1 de l’eWON. Le tag BitDevie ne possède pas d’adresse Modbus. Sur M340, "vie" est en minuscule.

Figure 29 : tag COM_ENVOI_MotDeVie M340
Déclaration du tag COM_ENVOI_MotDeVie (registre Modbus 200) correspondant au mot de vie lu dans l’automate ou Lina selon les cas.
Déclaration du tag COM_Secu_Indic_pays_1 (registre Modbus 210) et COM_Secu_Num_tel_1 (registre Modbus 211) correspondant au 1er destinataire du SMS de perte de mot vie.
Déclaration jusqu’à 10 destinataires possible _1 à _10.
5.3.2 Configuration du M340

Figure 31 : MOT_VIE InDIC_PAYS_secu
Déclaration du mot de vie pour envoi vers l’eWON.
Déclaration de tableaux (indic_pays et num_tel) contenant les numéros de recpetin des SMS .

Figure 32 : Bits_horaires
Dans la section Bits_horaires, ajouter la gestion du mot de vie. La variable MOT_VIE est incrémentée toutes les secondes. Elle est remise à 0 quand elle atteint 32000. Si l’automate passe en STOP ou si l’automate est éteint, la variable lue par l’eWON n’évoluera plus.
5.3.3 Basic GereMotVie eWON M340
Par défaut, un programme eWON BASIC IDE existe avec deux sections : Cyclic et Init :

Figure 33 : Déclaration de deux timers
Dans la section Init, déclarer 2 timers : le n°1 d’une durée de 200 s, le n°2 d’une durée de 15 s.
- Timer n°1 envoi le programme vers le label GereMotVie ;
- Timer n°2 mémorise dans la variable interne MotDeVie% la valeur du mot de vie automate MotDeVie@.
Mot clé | Définition |
---|---|
TSET | This function initializes the timer E1 at an E2 time base (in seconds). The timer is read by TGET. To stop a timer, E2 must be set to 0. |
ONTIMER | This command executes S1 command line when E1 expires.The EVTINFO parameter is set to the timer number when command is called. |

Figure 34 : gestion d’erreurs
La gestion du mot de vie est active si l’entrée Di1 de l’eWON est à 0.
Si par 3 fois de suite soit 3 * 200 = 600 s, le mot de vie n’a pas évolué alors un SMS d’erreur est envoyé. Sinon le compteur est réinitialisé à zéro.
Le message SMS n’est envoyé aux différents destinataires que si l’indicateur pays est différent de 0.
À la fin de l’envoi le compteur « 3 fois de suite » est réinitialisé afin d’envoyer cycliquement le message toutes les 10 mn = 3*200 = 600 s
Remarque : Le compteur 3 fois de suite a été rajouté suite aux tests. Il arrivait que même si la communication était correcte, le mot de vie était identique (problème de tempo et temps de cycle).
5.3.4 Programme M340

Figure 35 : DFB EWON_FLEXY_1 prog M340
En entrée du DFB :
- le bit opt_vie autorise ou inhibe l’envoi du mot de vie de l’automate vers l’eWON ;
- le bit opt_secu autorise ou inhibe l’envoi des numéros de téléphone de réception des SMS de sécurité (mot de vie et perte alimentation) vers l’eWON ;
- le bit opt_signal autorise ou inhibe la lecture du signal GSM depuis l’eWON.

Figure 36 : Écriture du mot de vie et des n° de tél.
L’écriture du mot de vie et des n° de téléphone est exécuté toutes les 5 sec.

Figure 37 : lecture du signal GSM est-elle active
Dans un premier temps, test si l’option lecture du signal GSM est active, sinon saut à l’option « écriture mot de vie ».

Figure 38 : Lecture registre API_Signal_GSM
Lecture du registre API_Signal_GSM à l'adresse 206 et mise à disposition sur la sortie du DFB SIGNAL_GSM.

Figure 39 : Option écrire mot de vie active ?
Dans un deuxième temps, test si l’option « écriture mot de vie » est active, sinon saut à l’option « écriture n° tel sécurité ».

Figure 40 : Écriture de MOT_VIE
Écriture de la valeur de la variable automate MOT_VIE dans le registre COM_ENVOI_MotDeVie à l'adresse 200 de l’eWON.

Figure 41 : Option écrire n° tel sécurité active ?
Dans un troisième temps, test si l’option « écriture n° tel sécurité » est active, sinon saut au reboublage de la séquence.

Figure 42 : Écrire InDIC _PAYS_secu et num_tel*
Écriture des 2 tableaux automates InDIC_PAYS_secu et num_tel_secu dans les registres eWON correspondants : COM_Secu_Indic_pays_1 à COM_Secu_Indic_pays_10 et COM_Secu_Num_tel_1 à COM_Secu_Num_tel_10 adresse 210 à 239.

Figure 43 : Attente tempo ou envoi SMS
Dans un quatrième temps, reboublage de la séquence en 10 pour attente tempo ou envoi SMS.
5.4 Coupure de tension du modem, envoi de SMS
Exigence | Spécification |
---|---|
4 | Sur coupure de tension du modem, envoi d’un SMS pour le signaler. (le modem sera bien sur secouru par batterie pour l’envoi) |
5.4.1 Configuration de l’eWON
Déclaration du tag AlimSecteur correspondant à l’entrée DI2 de l’eWON. Le tag ne possède pas d’adresse Modbus.
5.4.2 Configuration du M340
Sans objet
5.4.3 Basic EnvoiDefautAlimSecteur eWON
Par défaut un programme eWON BASIC IDE existe avec une section Cyclic et une section Init

Figure 45 : Évènement ONCHANGE
Dans la section Init déclenchement de la surveillance du tab AlimSecteur par une fonction ONCHANGE.
Si AlimSecteur passe à 0, le programme est envoyé vers le label EnvoiDefautAlimSecteur.
On envoie alors un SMS contenant la message « Defaut alimentation secteur » .
Si AlimSecteur repasse à 1, le programme est envoyé vers le label EnvoiRetourAlimSecteur.
On envoie alors un SMS contenant la message « Retour alimentation secteur ».
Le message SMS n’est envoyé aux différents destinataires que si l’indicateur pays est différent de 0.
5.4.4 Programme M340
Sans objet
5.5 Signaler à l’automate le msg du modem
Modem reçoit un message et le signale à l’automate :
Exigence | Spécification |
---|---|
5 | Le modem peut recevoir un message et le signaler à l’automate. L’automate doit être capable de traiter le message reçu. |
5.5.1 Configuration de l’eWON
Déclaration de 160 tags nommés MSG1001 à MSG1160 pour la gestion du message SMS.
Le tag possède MSG1001 possède l’adresse Modbus registre 1001.
Le tag possède MSG1160 possède l’adresse Modbus registre 1160.
Déclaration du tag nommé StatusMessageRecu pour indiquer à l’ automate ou à Lina la réception par l’eWON d’un message SMS : registre Modbus 1201.
Déclaration du tag nommé AcquitMessageRecu pour l’acquittement par l’automate ou par Lina de la lecture du message SMS : registre Modbus 1202.
5.5.2 Configuration du M340
La réception d’un SMS sera faite par LINA pour l’acquittement des alarmes donc le programme n’a pas été développé dans la DFB.
5.5.3 Basic ReceptionSMS eWON
Par défaut un programme eWON BASIC IDE existe avec deux sections : Cyclic et Init.

Figure 48 : Section Init
Dans la section Init, on attend ⌛ la réception d’un SMS par la fonction ONSMS. Dans ce cas, le programme saute au label ReceptionSMS.

Figure 49 : ONCHANGE AcquitMessageRecu
On lance également la surveillance de la variable AcquitMessageRecu avec la fonction ONCHANGE. Lorsque la variable passe à 1, le programme saute vers le label AcquitReception
Mot clé | Définition |
---|---|
ONSMS | Executed when a SMS is received (only for eWON with GSM/GPRS modem) |

Figure 50 : ONSMS ReceptionSMS
Lors de la réception d’un SMS, le message reçu est découpé et mis dans les tags MSG1001 à MSG1160 afin d’être lu par Lina. Le tag StatutMessageRecu est ensuite mis à 1 pour signaler à Lina la réception d’un message.
Une boucle contrôle que le buffer de réception des SMS est vide avant de quitter la fonction. Il n’est pas possible de savoir combien de message SMS sont en attente de lecture.

Figure 51 : Reset de StatutMessageRecu
Lorsque Lina a traité le message, il doit mettre la variable AcquitMessagerecu à 1, l’eWON remet alors le tag StatutMessageRecu à 0.
5.5.4 Programme M340
Cette séquence sera à développer pour une utilisation finale du modem.